package cn.jobstart.search;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import cn.jobstart.pubInter.BaseSearch;
import cn.jobstart.model.ResumeBasic;
import java.util.Date;
import java.util.List;
import java.math.BigDecimal;
import lombok.Data;
/**
*   @author sunke
*   @Date 2023-10-30 11:03:48
*   @description ResumeBasicSearch      简历基础表
*/


@Data
@ApiModel("简历基础表ResumeBasicSearch")
public abstract class ResumeBasicSearch<Sub extends ResumeBasicSearch<Sub>> extends BaseSearch {
    @ApiModelProperty(value = "主键")
    private List idIn;
    @ApiModelProperty(value = "简历名称")
    private String titleLike;
    @ApiModelProperty(value = "qq")
    private String qqEq;
    @ApiModelProperty(value = "婚姻状况")
    private String marriageLike;
    @ApiModelProperty(value = "婚姻状况 0保密  1未婚 2已婚 0:保密:secret,1:未婚:un_married,2:已婚:married")
    private List marriageFlagIn;
    @ApiModelProperty(value = "开始工作年限")
    private String firstWorkEq;
    @ApiModelProperty(value = "真实姓名")
    private String truenameLike;
    @ApiModelProperty(value = "求职意向")
    private String expectworkLike;
    @ApiModelProperty(value = "开始出生日期")
    private Date birthdayStart;
    @ApiModelProperty(value = "结束出生日期")
    private Date birthdayEnd;
    @ApiModelProperty(value = "民族")
    private String nationLike;
    @ApiModelProperty(value = "籍贯")
    private String expectcityLike;
    @ApiModelProperty(value = "居住地")
    private String livePlaceLike;
    @ApiModelProperty(value = "政治面貌")
    private String politicsLike;
    @ApiModelProperty(value = "邮箱")
    private String emailLike;
    @ApiModelProperty(value = "手机号")
    private String mobileEq;
    @ApiModelProperty(value = "求职城市")
    private String exceptCityLike;
    @ApiModelProperty(value = "求职意向")
    private String categoryLike;
    @ApiModelProperty(value = "求职意向id")
    private String categoryIdEq;
    @ApiModelProperty(value = "开始(数据来源)简历创建时间")
    private Date resumeCreateTimeStart;
    @ApiModelProperty(value = "结束(数据来源)简历创建时间")
    private Date resumeCreateTimeEnd;
    @ApiModelProperty(value = "完整度")
    private String integrityEq;
    @ApiModelProperty(value = "开始简历更新时间")
    private Date resumeModifyTimeStart;
    @ApiModelProperty(value = "结束简历更新时间")
    private Date resumeModifyTimeEnd;
    @ApiModelProperty(value = "期望行业")
    private String parentCategoryLike;
    @ApiModelProperty(value = "期望行业id")
    private String parentCategoryIdEq;
    @ApiModelProperty(value = "期望职位二级类型")
    private String secondCategoryEq;
    @ApiModelProperty(value = "期望职位二级类型id")
    private String secondCategoryIdEq;
    @ApiModelProperty(value = "求职者id")
    private String kzpStudentIdEq;
    @ApiModelProperty(value = "旧简历id")
    private String oldResumesIdEq;
    @ApiModelProperty(value = "工作经验")
    private String jobYearEq;
    @ApiModelProperty(value = "学历")
    private String educationEq;
    @ApiModelProperty(value = "身高体重")
    private String heightEq;
    @ApiModelProperty(value = "一句话总结")
    private String summaryEq;
    @ApiModelProperty(value = "大于排序")
    private Integer sortNumGreater;
    @ApiModelProperty(value = "小于排序")
    private Integer sortNumLess;
    @ApiModelProperty(value = "是否显示 1:是:Y,0:否:N")
    private List showFlagIn;
    @ApiModelProperty(value = "是否删除 1:删除:Y,0:正常:N")
    private Integer delFlagEq=0;
    @ApiModelProperty(value = "版本")
    private Integer verisonEq;
    @ApiModelProperty(value = "人才ID")
    private String personIdEq;
    @ApiModelProperty(value = "人才订阅ID")
    private String talentSubscriptionTaskIdEq;
    @ApiModelProperty(value = "大于当前薪资")
    private BigDecimal currentSalaryGreater;
    @ApiModelProperty(value = "小于当前薪资")
    private BigDecimal currentSalaryLess;
    @ApiModelProperty(value = "大于期望薪资")
    private BigDecimal expectedSalaryGreater;
    @ApiModelProperty(value = "小于期望薪资")
    private BigDecimal expectedSalaryLess;
    @ApiModelProperty(value = "是否入es 1:是:Y,0:否:N")
    private List esFlagIn;
    @ApiModelProperty(value = "编辑员工ID")
    private String modAdminIdEq;
    @ApiModelProperty(value = "修改员工姓名")
    private String modAdminTruenameLike;
    @ApiModelProperty(value = "开始修改时间")
    private Date modTimeStart;
    @ApiModelProperty(value = "结束修改时间")
    private Date modTimeEnd;
    @ApiModelProperty(value = "身份证")
    private String idcardLike;
    @ApiModelProperty(value = "学历 1:初中及以下:middle,2:高中/中技/中专:Senior,3:大专:junior,4:本科:undergraduate,5:硕士:Master,6:博士:doctor")
    private List educationFlagIn;
    @ApiModelProperty(value = "工作经验 1:1年以内:one_down,2:1-3年:one_three,3:3-5年:three_five,4: 5-10年:five_ten,5:10年以上:ten_up")
    private List workExperienceFlagIn;
    @ApiModelProperty(value = "家庭电话")
    private String homePhoneLike;
    @ApiModelProperty(value = "通讯地址")
    private String addressLike;
    @ApiModelProperty(value = "兴趣爱好")
    private String hobbyEq;

    public ResumeBasicSearch() {
        setDelFlagEq(0);
    }



    /**
    * 返回子类Sub
    * @return
    */
    public abstract Sub getSubThis();

    @Override
    public String createTimeFiled() {
        return ResumeBasic.CREATE_TIME;
    }
    @Override
    public String updateTimeFiled() {
        return ResumeBasic.UPDATE_TIME;
    }
    @Override
    public String  setDefaultField() {
        return ResumeBasic.CREATE_TIME;
    }
    @Override
    public String pkField() {
        return ResumeBasic.ID;
    }

    @Override
    public String  toString() {
        return "ResumeBasicSearch{}"+super.toString();
    }
    public Sub setIdIn(List idIn){
        this.idIn = idIn;
        setInField(ResumeBasic.ID, idIn);
        return getSubThis();
    }
    public Sub setTitleLike(String titleLike){
        this.titleLike = titleLike;
        setLikeField(ResumeBasic.TITLE, titleLike);
        return getSubThis();
    }
    public Sub setQqEq(String qqEq){
        this.qqEq = qqEq;
        setEqualField(ResumeBasic.QQ, qqEq);
        return getSubThis();
    }
    public Sub setMarriageLike(String marriageLike){
        this.marriageLike = marriageLike;
        setLikeField(ResumeBasic.MARRIAGE, marriageLike);
        return getSubThis();
    }
    public Sub setMarriageFlagIn(List marriageFlagIn){
        this.marriageFlagIn = marriageFlagIn;
        setInField(ResumeBasic.MARRIAGE_FLAG, marriageFlagIn);
        return getSubThis();
    }
    public Sub setFirstWorkEq(String firstWorkEq){
        this.firstWorkEq = firstWorkEq;
        setEqualField(ResumeBasic.FIRST_WORK, firstWorkEq);
        return getSubThis();
    }
    public Sub setTruenameLike(String truenameLike){
        this.truenameLike = truenameLike;
        setLikeField(ResumeBasic.TRUENAME, truenameLike);
        return getSubThis();
    }
    public Sub setExpectworkLike(String expectworkLike){
        this.expectworkLike = expectworkLike;
        setLikeField(ResumeBasic.EXPECTWORK, expectworkLike);
        return getSubThis();
    }
    public Sub setBirthdayStart(Date birthdayStart){
        this.birthdayStart = birthdayStart;
        setDateStartField(ResumeBasic.BIRTHDAY, birthdayStart);
        return getSubThis();
    }
    public Sub setBirthdayEnd(Date birthdayEnd){
        this.birthdayEnd = birthdayEnd;
        setDateEndField(ResumeBasic.BIRTHDAY, birthdayEnd);
        return getSubThis();
    }
    public Sub setNationLike(String nationLike){
        this.nationLike = nationLike;
        setLikeField(ResumeBasic.NATION, nationLike);
        return getSubThis();
    }
    public Sub setExpectcityLike(String expectcityLike){
        this.expectcityLike = expectcityLike;
        setLikeField(ResumeBasic.EXPECTCITY, expectcityLike);
        return getSubThis();
    }
    public Sub setLivePlaceLike(String livePlaceLike){
        this.livePlaceLike = livePlaceLike;
        setLikeField(ResumeBasic.LIVE_PLACE, livePlaceLike);
        return getSubThis();
    }
    public Sub setPoliticsLike(String politicsLike){
        this.politicsLike = politicsLike;
        setLikeField(ResumeBasic.POLITICS, politicsLike);
        return getSubThis();
    }
    public Sub setEmailLike(String emailLike){
        this.emailLike = emailLike;
        setLikeField(ResumeBasic.EMAIL, emailLike);
        return getSubThis();
    }
    public Sub setMobileEq(String mobileEq){
        this.mobileEq = mobileEq;
        setEqualField(ResumeBasic.MOBILE, mobileEq);
        return getSubThis();
    }
    public Sub setExceptCityLike(String exceptCityLike){
        this.exceptCityLike = exceptCityLike;
        setLikeField(ResumeBasic.EXCEPT_CITY, exceptCityLike);
        return getSubThis();
    }
    public Sub setCategoryLike(String categoryLike){
        this.categoryLike = categoryLike;
        setLikeField(ResumeBasic.CATEGORY, categoryLike);
        return getSubThis();
    }
    public Sub setCategoryIdEq(String categoryIdEq){
        this.categoryIdEq = categoryIdEq;
        setEqualField(ResumeBasic.CATEGORY_ID, categoryIdEq);
        return getSubThis();
    }
    public Sub setResumeCreateTimeStart(Date resumeCreateTimeStart){
        this.resumeCreateTimeStart = resumeCreateTimeStart;
        setDateStartField(ResumeBasic.RESUME_CREATE_TIME, resumeCreateTimeStart);
        return getSubThis();
    }
    public Sub setResumeCreateTimeEnd(Date resumeCreateTimeEnd){
        this.resumeCreateTimeEnd = resumeCreateTimeEnd;
        setDateEndField(ResumeBasic.RESUME_CREATE_TIME, resumeCreateTimeEnd);
        return getSubThis();
    }
    public Sub setIntegrityEq(String integrityEq){
        this.integrityEq = integrityEq;
        setEqualField(ResumeBasic.INTEGRITY, integrityEq);
        return getSubThis();
    }
    public Sub setResumeModifyTimeStart(Date resumeModifyTimeStart){
        this.resumeModifyTimeStart = resumeModifyTimeStart;
        setDateStartField(ResumeBasic.RESUME_MODIFY_TIME, resumeModifyTimeStart);
        return getSubThis();
    }
    public Sub setResumeModifyTimeEnd(Date resumeModifyTimeEnd){
        this.resumeModifyTimeEnd = resumeModifyTimeEnd;
        setDateEndField(ResumeBasic.RESUME_MODIFY_TIME, resumeModifyTimeEnd);
        return getSubThis();
    }
    public Sub setParentCategoryLike(String parentCategoryLike){
        this.parentCategoryLike = parentCategoryLike;
        setLikeField(ResumeBasic.PARENT_CATEGORY, parentCategoryLike);
        return getSubThis();
    }
    public Sub setParentCategoryIdEq(String parentCategoryIdEq){
        this.parentCategoryIdEq = parentCategoryIdEq;
        setEqualField(ResumeBasic.PARENT_CATEGORY_ID, parentCategoryIdEq);
        return getSubThis();
    }
    public Sub setSecondCategoryEq(String secondCategoryEq){
        this.secondCategoryEq = secondCategoryEq;
        setEqualField(ResumeBasic.SECOND_CATEGORY, secondCategoryEq);
        return getSubThis();
    }
    public Sub setSecondCategoryIdEq(String secondCategoryIdEq){
        this.secondCategoryIdEq = secondCategoryIdEq;
        setEqualField(ResumeBasic.SECOND_CATEGORY_ID, secondCategoryIdEq);
        return getSubThis();
    }
    public Sub setKzpStudentIdEq(String kzpStudentIdEq){
        this.kzpStudentIdEq = kzpStudentIdEq;
        setEqualField(ResumeBasic.KZP_STUDENT_ID, kzpStudentIdEq);
        return getSubThis();
    }
    public Sub setOldResumesIdEq(String oldResumesIdEq){
        this.oldResumesIdEq = oldResumesIdEq;
        setEqualField(ResumeBasic.OLD_RESUMES_ID, oldResumesIdEq);
        return getSubThis();
    }
    public Sub setJobYearEq(String jobYearEq){
        this.jobYearEq = jobYearEq;
        setEqualField(ResumeBasic.JOB_YEAR, jobYearEq);
        return getSubThis();
    }
    public Sub setEducationEq(String educationEq){
        this.educationEq = educationEq;
        setEqualField(ResumeBasic.EDUCATION, educationEq);
        return getSubThis();
    }
    public Sub setHeightEq(String heightEq){
        this.heightEq = heightEq;
        setEqualField(ResumeBasic.HEIGHT, heightEq);
        return getSubThis();
    }
    public Sub setSummaryEq(String summaryEq){
        this.summaryEq = summaryEq;
        setEqualField(ResumeBasic.SUMMARY, summaryEq);
        return getSubThis();
    }
    public Sub setSortNumGreater(Integer sortNumGreater){
        this.sortNumGreater = sortNumGreater;
        setGreaterField(ResumeBasic.SORT_NUM, sortNumGreater);
        return getSubThis();
    }
    public Sub setSortNumLess(Integer sortNumLess){
        this.sortNumLess = sortNumLess;
        setLessField(ResumeBasic.SORT_NUM, sortNumLess);
        return getSubThis();
    }
    public Sub setShowFlagIn(List showFlagIn){
        this.showFlagIn = showFlagIn;
        setInField(ResumeBasic.SHOW_FLAG, showFlagIn);
        return getSubThis();
    }
    public Sub setDelFlagEq(Integer delFlagEq){
        this.delFlagEq = delFlagEq;
        setEqualField(ResumeBasic.DEL_FLAG, delFlagEq);
        return getSubThis();
    }
    public Sub setVerisonEq(Integer verisonEq){
        this.verisonEq = verisonEq;
        setEqualField(ResumeBasic.VERISON, verisonEq);
        return getSubThis();
    }
    public Sub setPersonIdEq(String personIdEq){
        this.personIdEq = personIdEq;
        setEqualField(ResumeBasic.PERSON_ID, personIdEq);
        return getSubThis();
    }
    public Sub setTalentSubscriptionTaskIdEq(String talentSubscriptionTaskIdEq){
        this.talentSubscriptionTaskIdEq = talentSubscriptionTaskIdEq;
        setEqualField(ResumeBasic.TALENT_SUBSCRIPTION_TASK_ID, talentSubscriptionTaskIdEq);
        return getSubThis();
    }
    public Sub setCurrentSalaryGreater(BigDecimal currentSalaryGreater){
        this.currentSalaryGreater = currentSalaryGreater;
        setGreaterField(ResumeBasic.CURRENT_SALARY, currentSalaryGreater);
        return getSubThis();
    }
    public Sub setCurrentSalaryLess(BigDecimal currentSalaryLess){
        this.currentSalaryLess = currentSalaryLess;
        setLessField(ResumeBasic.CURRENT_SALARY, currentSalaryLess);
        return getSubThis();
    }
    public Sub setExpectedSalaryGreater(BigDecimal expectedSalaryGreater){
        this.expectedSalaryGreater = expectedSalaryGreater;
        setGreaterField(ResumeBasic.EXPECTED_SALARY, expectedSalaryGreater);
        return getSubThis();
    }
    public Sub setExpectedSalaryLess(BigDecimal expectedSalaryLess){
        this.expectedSalaryLess = expectedSalaryLess;
        setLessField(ResumeBasic.EXPECTED_SALARY, expectedSalaryLess);
        return getSubThis();
    }
    public Sub setEsFlagIn(List esFlagIn){
        this.esFlagIn = esFlagIn;
        setInField(ResumeBasic.ES_FLAG, esFlagIn);
        return getSubThis();
    }
    public Sub setModAdminIdEq(String modAdminIdEq){
        this.modAdminIdEq = modAdminIdEq;
        setEqualField(ResumeBasic.MOD_ADMIN_ID, modAdminIdEq);
        return getSubThis();
    }
    public Sub setModAdminTruenameLike(String modAdminTruenameLike){
        this.modAdminTruenameLike = modAdminTruenameLike;
        setLikeField(ResumeBasic.MOD_ADMIN_TRUENAME, modAdminTruenameLike);
        return getSubThis();
    }
    public Sub setModTimeStart(Date modTimeStart){
        this.modTimeStart = modTimeStart;
        setDateStartField(ResumeBasic.MOD_TIME, modTimeStart);
        return getSubThis();
    }
    public Sub setModTimeEnd(Date modTimeEnd){
        this.modTimeEnd = modTimeEnd;
        setDateEndField(ResumeBasic.MOD_TIME, modTimeEnd);
        return getSubThis();
    }
    public Sub setIdcardLike(String idcardLike){
        this.idcardLike = idcardLike;
        setLikeField(ResumeBasic.IDCARD, idcardLike);
        return getSubThis();
    }
    public Sub setEducationFlagIn(List educationFlagIn){
        this.educationFlagIn = educationFlagIn;
        setInField(ResumeBasic.EDUCATION_FLAG, educationFlagIn);
        return getSubThis();
    }
    public Sub setWorkExperienceFlagIn(List workExperienceFlagIn){
        this.workExperienceFlagIn = workExperienceFlagIn;
        setInField(ResumeBasic.WORK_EXPERIENCE_FLAG, workExperienceFlagIn);
        return getSubThis();
    }
    public Sub setHomePhoneLike(String homePhoneLike){
        this.homePhoneLike = homePhoneLike;
        setLikeField(ResumeBasic.HOME_PHONE, homePhoneLike);
        return getSubThis();
    }
    public Sub setAddressLike(String addressLike){
        this.addressLike = addressLike;
        setLikeField(ResumeBasic.ADDRESS, addressLike);
        return getSubThis();
    }
    public Sub setHobbyEq(String hobbyEq){
        this.hobbyEq = hobbyEq;
        setEqualField(ResumeBasic.HOBBY, hobbyEq);
        return getSubThis();
    }
}